הפרמטר של השלישי, של הקידוד, אינו משפיע. למה צריך אותו?

ציטוט מ-php.net:
For the purposes of this function, the charsets ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, and KOI8-R are effectively equivalent, provided the string itself is valid for the character set, as the characters affected by htmlspecialchars() occupy the same positions in all of these charsets.

4 תשובות

avatar ענה intval ב 27 לינואר 2012 #

הפרמטר השלישי מיועד למקרים שבהם אתה עובד עם קידוד אחר שהוא לא מהרשימה הזאת
(את עברית cp1255 אפשר לכלול ברשימה זו)

במקרים שהקידוד הוא לא מהרשימה הזו (למשל GBK) אז יש לציין את הקידוד, מיפוי התווים למספרים הוא שונה והפונקציה לא תעשה את הפעולה שלה כמו שצריך כשטבלת המיפוי שלה שגויה. בגלל זה במקרים כאלה יש להעביר בתור פרמטר שלישי את קידוד המחרוזת.

במקרה שאתה עובד עם utf-8 והנתונים שלך מגיעים מדפדפן - זה עניין יותר של הרגל, מאשר חובה או בעיה כלשהי.

avatar ענה iiddaannyy ב 27 לינואר 2012 #

אבל גם כתוב שאם נעביר כפרמטר שלישי קידוד שאינו ברשימה אז קידוד הברירת מחדל ייבחר (ISO-8859-1 לפני גירסה 5.4 ו-UTF-8 אחרי) ותוקפץ אזהרה.

avatar ענה intval ב 27 לינואר 2012 #

מה שרשום זה שהפונקציה יכול לקבל בתור פרמטר שלישי אחד מהקידודים שרשומים שם (יש 12)
מתוכם 5 מתנהגים בצורה זהה

avatar ענה iiddaannyy ב 27 לינואר 2012 #

*7 מתנהגים בצורה זהה.

וכן, לא שמתי לב שהביאו חלק מרשימה.. תודה.